package com.example.demo.utils;

import java.util.Collection;
import java.util.Map;
import java.util.UUID;

/**
 * 通用util工具类
 * 
 * @ClassName: CommonUtil
 * @Description:公共工具类
 * @author xie.m
 * @date 2018-6-19 下午17:51:47
 */
public class CommonUtil {

	private CommonUtil() {
		super();
	}

	/**
	 * 判断集合是否有值
	 * 
	 * @param collection
	 *            集合
	 * @return
	 */
	public static boolean hasValue(Collection<?> collection) {
		return ((null != collection) && (!collection.isEmpty()));
	}

	/**
	 * 判断数组是否有值
	 * 
	 * @param t
	 *            数组
	 * @return
	 */
	public static <T> boolean hasValue(T[] t) {
		return ((null != t) && (t.length > 0));
	}

	/**
	 * 判断Map是否有值
	 * 
	 * @param map
	 *            Map集合
	 * @return
	 */
	public static <K, V> boolean hasValue(Map<K, V> map) {
		return (map != null) && (map.size() > 0);
	}

	/**
	 * 判断对象是否为null，如果传进去的对象为null，则返回false，传进去的对象都不为null，返回true
	 * 
	 * @param objects
	 *            可变参数
	 * @return
	 */
	public static boolean isNotNull(Object... objects) {
		if (null == objects || objects.length == 0) {
			return false;
		}
		for (Object obj : objects) {
			if (null == obj) {
				return false;
			}
		}
		return true;
	}

	/**
	 * 判断Number是否为空 如果为空返回0 否则返回 自身
	 * 
	 * @param target
	 * @return
	 *
	 * @date: 2018年5月11日 下午5:29:35
	 * @author: Yang.Fan
	 */
	public static Number checkNumber(Number target) {
		return target == null ? 0 : target;
	}

	/**
	 * 判断String是否为空 如果为空返回空字符串 否则返回自身
	 * 
	 * @param target
	 * @return
	 *
	 * @date: 2018年5月11日 下午5:29:35
	 * @author: Yang.Fan
	 */
	public static String checkString(String target) {
		return target == null ? "" : target;
	}

	/**
	 * 生成32位UUID
	 * 
	 * @author xie.m
	 * @version 0.1.0
	 * 
	 * @return uuid值
	 */
	public static String getUUID() {
		return UUID.randomUUID().toString().replace("-", "");
	}
}
